﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Circo.Framework.BusinessLogic.Views.Filters;
using SC.eWedding.BusinessLogic.Views;
using SC.eWedding.BusinessLogic.Handlers;

public partial class Administrador_Controles_vfProveedor : System.Web.UI.UserControl
{
    #region Propiedades Publicas
    public string Nombre
    {
        get { return txtNombre.Text; }
        set { txtNombre.Text = value; }
    }

    public int Localidad
    {
        get { return int.Parse(ddlLocalidad.SelectedValue); }
        set { ddlLocalidad.SelectedValue = value.ToString(); }
    }

    public int Provincia
    {
        get { return int.Parse(ddlProvincia.SelectedValue); }
        set { ddlProvincia.SelectedValue = value.ToString(); }
    }

    #endregion

    #region Metodos Publicos

    public List<ViewFilter> Filtros()
    {
        List<ViewFilter> filters = new List<ViewFilter>();

        if (txtNombre.Text != "")
            filters.Add(new ViewCommonFilter("Nombre", txtNombre.Text));
        if (ddlProvincia.SelectedValue != "-1")
            filters.Add(new ViewCommonFilter("Provincia", int.Parse(ddlProvincia.SelectedValue)));
        if (ddlLocalidad.SelectedValue != "-1")
            filters.Add(new ViewCommonFilter("Localidad", int.Parse(ddlLocalidad.SelectedValue)));
        if (ddlActivo.SelectedValue != "-1")
            filters.Add(new ViewCommonFilter("Activo", int.Parse(ddlActivo.SelectedValue)));

        return filters;
    }

    public void Limpiar()
    {
        txtNombre.Text = "";
        ddlActivo.SelectedValue = "-1";
        ddlLocalidad.SelectedValue = "-1";
        ddlProvincia.SelectedValue = "-1";
    }

    public void CargarCombos()
    {
        CargarComboProvincia();
        CargarComboLocalidad();
        CargarComboActivo();
    }

    #endregion

    #region Metodos Privados

    private void CargarComboProvincia()
    {
        List<ProvinciaView> provincias = new List<ProvinciaView>();

        ProvinciaView tipoSel = new ProvinciaView();
        tipoSel.Id = -1;
        tipoSel.Nombre = "<Seleccionar>";

        provincias.Add(tipoSel);
        provincias.AddRange(ProvinciaHandler.FindAll());

        ddlProvincia.DataSource = provincias;
        ddlProvincia.DataBind();
    }

    private void CargarComboLocalidad()
    {
        List<LocalidadView> localidades = new List<LocalidadView>();

        LocalidadView tipoSel = new LocalidadView();
        tipoSel.Id = -1;
        tipoSel.Nombre = "<Seleccionar>";
        localidades.Add(tipoSel);

        if (Provincia != -1)
        {
            List<ViewFilter> filtros = new List<ViewFilter>();

            filtros.Add(new ViewCommonFilter("Provincia", Provincia));

            localidades.AddRange(LocalidadHandler.FindBy(filtros));
        }
        ddlLocalidad.DataSource = localidades;
        ddlLocalidad.DataBind();

        ddlLocalidad.Enabled = Provincia != -1;
    }

    private void CargarComboActivo()
    {
        ddlActivo.Items.Add(new ListItem("<Seleccionar>", "-1"));
        ddlActivo.Items.Add(new ListItem("No", "0"));
        ddlActivo.Items.Add(new ListItem("Sí", "1"));
    }

    #endregion

    #region Eventos

    protected void ddlProvincia_SelectedIndexChanged(object sender, EventArgs e)
    {
        CargarComboLocalidad();
    }

    #endregion
}
